/**
 * 选择排序算法
 * 每一次取一个数，找到它后面元素的最小值，如果比当前数小，则交换位置，否则i++
 */
var choseSort = function (array) {
  let i = 0;
  let j = array.length - 1;
  while (i < j - 1) {
    let start = array[i];
    // 查找最小的数，并找出其下标
    let minIndex = getMin(array, i+1, j);
    // 交换位置
    if(start > array[minIndex]) {
      array[i] = array[minIndex];
      array[minIndex] = start;
      i++;
    } else {
      // 后面的数最小值都比当前值要大，则继续循环
      i++;
    }
  }
  return array;
  function getMin(arr, start, end) {
    let fv = arr[start];
    let fi = start;
    // 找最小值
    for (start++; start <= end; start++) {
      if(arr[start] < fv) {
        fv = arr[start];
        fi = start;
      }
    }
    return fi;
  }
}
console.log(choseSort([56, 12, 80, 91, 76]))